package main

import (
	"errors"
	"fmt"
)

func panicError() {
	panic(errors.New("出问题了"))
}

func main() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()

	fmt.Println("main开始执行")
	//在异常产生后，会立刻打断程序执行，
	//因此最后一条输出语句不会执行，并发上进入defer定义的函数的执行环节
	panicError()
	fmt.Println("main结束执行")
	//执行结果:
	//main开始执行
	//出问题了
}
